Apex Security Best Practices

Computer Programming - এপেক্স (Apex) Apex Security (Apex Security) |
262
262

Salesforce-এ Apex Security Best Practices অনুসরণ করে অ্যাপ্লিকেশনের ডেটা, লজিক, এবং ব্যবহারকারীর নিরাপত্তা নিশ্চিত করা হয়। Apex কোড নিরাপদভাবে লিখতে হলে কিছু নির্দিষ্ট পদ্ধতি এবং নিয়ম মেনে চলা অত্যন্ত গুরুত্বপূর্ণ, যা ডেটার নিরাপত্তা ও অ্যাপ্লিকেশনের কার্যক্ষমতা বৃদ্ধি করে।


Apex Security Best Practices

With Sharing এবং Without Sharing কিওয়ার্ড ব্যবহার করুন

  • With Sharing: Apex ক্লাসে with sharing ব্যবহার করলে ক্লাসটি বর্তমানে লগইন করা ব্যবহারকারীর শেয়ারিং নিয়ম মেনে চলে।
  • Without Sharing: without sharing ব্যবহার করলে শেয়ারিং নিয়ম উপেক্ষা করা হয়, তবে এটি ব্যবহার করার সময় খুব সতর্ক থাকতে হবে।
  • উদাহরণ:
public with sharing class AccountController {
    // কোড শেয়ারিং নিয়ম মেনে চলবে
}

SOQL ইনজেকশন থেকে বাঁচুন

  • SOQL ইনজেকশন হলো এমন একটি আক্রমণ পদ্ধতি যেখানে ডেটাবেসের সাথে অপ্রত্যাশিত ম্যালিসিয়াস ইনপুট দিয়ে কোড এক্সিকিউট করা হয়।
  • Escape Bind Variables: ব্যবহারকারীর ইনপুট সরাসরি SOQL কুয়েরিতে ব্যবহার না করে bind variables ব্যবহার করুন।
  • উদাহরণ:
String accountName = 'Acme';
Account acc = [SELECT Id FROM Account WHERE Name = :accountName];

CRUD এবং FLS (Field Level Security) চেক করুন

  • CRUD (Create, Read, Update, Delete): Apex কোডে রেকর্ড এক্সেস করার আগে CRUD অনুমোদন চেক করুন, যাতে ব্যবহারকারীর যথাযথ অনুমোদন রয়েছে কিনা তা নিশ্চিত হয়।
  • FLS (Field Level Security): ফিল্ডে এক্সেস করার আগে FLS চেক করে নিশ্চিত করুন যে ব্যবহারকারী সেই ফিল্ড দেখতে বা সম্পাদনা করতে পারে।
  • উদাহরণ:
if (Schema.sObjectType.Account.isAccessible()) {
    Account acc = [SELECT Id, Name FROM Account LIMIT 1];
}

Insecure Direct References (IDOR) এড়িয়ে চলুন

  • IDOR আক্রমণ এড়াতে শুধুমাত্র ব্যবহারকারীর অনুমোদিত রেকর্ডগুলো এক্সেস করতে দিন। ব্যবহারকারীর কাছে যে রেকর্ডগুলো এক্সেস করার অনুমতি নেই সেগুলো থেকে দূরে রাখুন।
  • User Context চেক করুন: ব্যবহারকারীর প্রয়োজনীয় অনুমতি আছে কিনা তা চেক করুন।

Avoid Hardcoding Sensitive Data

  • সেনসিটিভ তথ্য যেমন API Keys, পার্সওয়ার্ড ইত্যাদি হার্ডকোড করা থেকে বিরত থাকুন।
  • Custom Settings বা Custom Metadata ব্যবহার করে সংবেদনশীল তথ্য সেভ করুন।

Use Named Credentials for External Services Integration

  • Named Credentials ব্যবহার করে নিরাপদভাবে এক্সটার্নাল সার্ভিসের সাথে সংযোগ করুন, যা ব্যবহারকারীর প্রমাণীকরণ তথ্য এবং সার্ভিস এন্ডপয়েন্ট নিরাপদ রাখে।
  • উদাহরণ:
HttpRequest req = new HttpRequest();
req.setEndpoint('callout:MyNamedCredential/api/endpoint');

Exception Handling যুক্ত করুন

  • Exception Handling ব্যবহার করে ত্রুটির উপযুক্ত বার্তা প্রদান করুন এবং সংবেদনশীল ডেটা লিক হওয়া থেকে রক্ষা করুন।
  • Generic Error Message প্রদান করুন: Exception মেসেজে সংবেদনশীল ডেটা এড়িয়ে চলুন।
  • উদাহরণ:
try {
    // কোড
} catch (DmlException e) {
    System.debug('An error occurred: ' + e.getMessage());
}

Avoid Using "SeeAllData=true" in Test Classes

  • SeeAllData=true ব্যবহার করে মূল ডেটাবেস অ্যাক্সেস করা হয়, যা নিরাপত্তা ঝুঁকি তৈরি করে।
  • টেস্ট ক্লাসে SeeAllData=false ব্যবহার করুন এবং টেস্ট ডেটা নিজে তৈরি করুন।

Prevent Cross-Site Scripting (XSS)

  • Visualforce Page-এ ইনপুট এবং আউটপুটের সময় XSS আক্রমণ থেকে রক্ষা পাওয়ার জন্য HTML encode ব্যবহার করুন।
  • apex:outputText ব্যবহার করুন, যা HTML encode করে ইনপুট আউটপুট প্রদর্শন করে।
  • উদাহরণ:
<apex:outputText value="{!account.Name}" escape="true"/>

Avoid Excessive Debug Logging in Production

  • প্রোডাকশন এনভায়রনমেন্টে অতিরিক্ত ডিবাগ লগিং ব্যবহার করা এড়িয়ে চলুন, যা সংবেদনশীল তথ্য লিক করতে পারে।

সারসংক্ষেপ

Apex Security Best Practices অনুসরণ করে Salesforce অ্যাপ্লিকেশন সুরক্ষিত এবং নির্ভরযোগ্য রাখা যায়। Sharing কিওয়ার্ড, SOQL ইনজেকশন থেকে রক্ষা, CRUD এবং FLS চেক, Named Credentials, এবং Exception Handling-এর মতো সিকিউরিটি পদ্ধতি ব্যবহার করে অ্যাপ্লিকেশনকে নিরাপদ ও কার্যক্ষম রাখা সম্ভব হয়। Salesforce ডেভেলপমেন্টে এই সিকিউরিটি প্র্যাকটিস অনুসরণ করা একটি ভালো এবং প্রয়োজনীয় অভ্যাস।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion